var app = getApp();
const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : '0' + n
}


const getUnixToDate=(val)=>{
	if(!val)return '';
    var unixtimestamp = new Date(val*1000);
    var year = 1900 + unixtimestamp.getYear();
    var month = "0" + (unixtimestamp.getMonth() + 1);
    var date = "0" + unixtimestamp.getDate();
    return year + "-" + month.substring(month.length-2, month.length)  + "-" + date.substring(date.length-2, date.length)
};

const formatTime = date => {
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    const hour = date.getHours()
    const minute = date.getMinutes()
    const second = date.getSeconds()
  
    return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
  }
  
  // 年月日时分
  const formatTime1 = date => {
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    const hour = date.getHours()
    const minute = date.getMinutes()
    const second = date.getSeconds()
  
    return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute].map(formatNumber).join(':')
  }
  
  // 年月日
  const formatTime2 = date => {
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
  
    return [year, month, day].map(formatNumber).join('-')
  }
  
  // 月日
  const mdTime = now => {
    let dates=new Date(now)
    var month=dates.getMonth()+1; 
     var date=dates.getDate(); 
     return [month, date].map(formatNumber).join('-')
  }

  const week=(now)=>{
    let date=new Date(now)
    var week;
    if(date.getDay() == 0) week = "星期日"
    if(date.getDay() == 1) week = "星期一"
    if(date.getDay() == 2) week = "星期二"
    if(date.getDay() == 3) week = "星期三"
    if(date.getDay() == 4) week = "星期四"
    if(date.getDay() == 5) week = "星期五"
    if(date.getDay() == 6) week = "星期六"
    return week;
}

const shareEvent=(option, obj=null)=>{
  let system_config=wx.getStorageSync('SYSTEM_CONFIG');
  let shareObj = {
    title: obj?obj.title:(system_config?system_config.business_name:''),
    path: obj?obj.path:'/pages/index/index',
    imageUrl: system_config && system_config.wechat_share_image?app.globalData.baseImgUrl+system_config.wechat_share_image:'/images/logo.png',
    // 转发成功之后的回调
    success(res) { 
      if (res.errMsg == 'shareAppMessage:ok') { }
    },
    // 转发失败之后的回调
    fail(res) { 
      //用户取消转发
      if (res.errMsg == 'shareAppMessage:fail cancel') {
      // 转发失败，其中 detail message 为详细失败信息
      } else if (res.errMsg == 'shareAppMessage:fail') {
        
      }
    },
    // 转发结束之后的回调（转发成不成功都会执行）
    complete() {}
  };
  if (option.from === 'button') {// 来自页面内转发按钮
    console.log(option.target)
  }
  return shareObj;
}

const regularConfig={ 
  IDcard:(id)=>/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(id), // 身份证
  mobile:(mobile)=>/^1([1|2|3|4|5|7|8|9|])\d{9}$/.test(mobile),
  telephone: (tel)=>/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(tel),
  num: /^[0-9]*$/, // 数字
  phoneNo: /(^1([3|4|5|7|8|])\d{9}$)|(^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$)/, // 电话或者手机
  policeNo: /^[0-9A-Za-z]{4,10}$/, // 账号4-10位数字或字母组成
  pwd: /^[0-9A-Za-z]{6,16}$/, // 密码由6-16位数字或者字母组成
  isNumAlpha: /^[0-9A-Za-z]*$/, // 字母或数字
  isAlpha: /^[a-zA-Z]*$/, // 是否字母
  isNumAlphaCn: /^[0-9a-zA-Z\u4E00-\uFA29]*$/, // 是否数字或字母或汉字
  isPostCode: /^[\d\-]*$/i, // 是否邮编
  isNumAlphaUline: /^[0-9a-zA-Z_]*$/, // 是否数字、字母或下划线
  isNumAndThanZero: /^([1-9]\d*(\.\d+)?|0)$/, // 是否为整数且大于0/^[1-9]\d*(\.\d+)?$/
  isNormalEncode: /^(\w||[\u4e00-\u9fa5]){0,}$/, // 是否为非特殊字符（包括数字字母下划线中文）
  isTableName: /^[a-zA-Z][A-Za-z0-9\#\$\_\-]{0,29}$/, // 表名
  isInt: /^-?\d+$/, // 整数
  isTableOtherName: /^[\u4e00-\u9fa5]{0,20}$/, // 别名
  // isText_30: /^(\W|\w{1,2}){0,15}$/, // 正则
  // isText_20: /^(\W|\w{1,2}){0,10}$/, // 正则
  isText_30: /^(\W|\w{1}){0,30}$/, // 匹配30个字符，字符可以使字母、数字、下划线、非字母，一个汉字算1个字符
  isText_50: /^(\W|\w{1}){0,50}$/, // 匹配50个字符，字符可以使字母、数字、下划线、非字母，一个汉字算1个字符
  isText_20: /^(\W|\w{1}){0,20}$/, // 匹配20个字符，字符可以使字母、数字、下划线、非字母，一个汉字算1个字符
  isText_100: /^(\W|\w{1}){0,100}$/, // 匹配100个字符，字符可以使字母、数字、下划线、非字母，一个汉字算1个字符
  isText_250: /^(\W|\w{1}){0,250}$/, // 匹配250个字符，字符可以使字母、数字、下划线、非字母，一个汉字算1个字符
  isNotChina: /^[^\u4e00-\u9fa5]{0,}$/, // 不为中文  IDcard: /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, // 身份证
  IDcardAndAdmin: /^(([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X))|(admin))$/, // 身份证或者是admin账号
  IDcardTrim: /^\s*(([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3})|([1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X))|(admin))\s*$/, // 身份证
  num1:(d)=>/^[1-9]*$/.test(d), // 数字
  companyNO: /^qqb_[0-9a-zA-Z_]{1,}$/, // 公司人员账号
  imgType: /image\/(png|jpg|jpeg|gif)$/, // 上传图片类型
  isChina: /^[\u4e00-\u9fa5]{2,8}$/,
  isNozeroNumber: /^\+?[1-9]\d*$/, // 大于零的正整数
  float: /^\d+(\.?|(\.\d+)?)$/, // 匹配正整数或者小数 或者0.这个特殊值
  isArray:(d)=>Object.prototype.toString.call(d) == '[object Array]',
  isObject:(d)=>{
    if(Object.prototype.toString.call(d) == '[object Object]'){
      return true;
    }
    return false;
  },
  isFunction:(d)=>{
    if(Object.prototype.toString.call(d) == '[object Function]'){
      return true;
    }
    return false;
  },
  isString:(d)=>{
    if(d!='null' && d!='undefined' && d!='' && Object.prototype.toString.call(d) == '[object String]'){
      return true;
    }
    return false;
  },
  isFillter:(d)=>{
    if(d && Object.prototype.toString.call(d) == '[object String]'){
      let s=d.trim();
      if(s.indexOf('null')!==-1 && s.indexOf('undefined')!==-1){
        return s;
      }
      return '';
    }
    return d;
  },
};
module.exports={formatTime,formatTime1,formatTime2,mdTime,week,shareEvent,regularConfig,getUnixToDate}